from Scripts.mq import conn as conn_mq
from Scripts.headers import config, log_format
from Scripts.api import Api
import logging
import json


# 开辟管道
mq = conn_mq()

# 声明队列，参数为队列名
mq.queue_declare(config.get('mq', 'jira_queue'))
logging.basicConfig(level=logging.WARNING, format=log_format)


# 消息处理函数，执行完成才说明接收完成，此时才可以接收下一条，串行
def user_create(v1, v2, v3, body_get):
    logging.warning(f'得到的数据为：{v1}, {v2}, {v3},'
                    f' {json.dumps(json.loads(body_get), indent=4, ensure_ascii=False)}')

    get_value = json.loads(body_get)
    try:
        get_value_type = get_value["header"]["event_type"]
        entry_name = get_value["event"]["object"]["en_name"]  # 获取json中的en_name内容
        entry_type = get_value["event"]["object"]["employee_type"]  # 获取json中的en_name内容
        entry_user_id = get_value["event"]["object"]["user_id"]
        jira = Api(entry_name, entry_user_id, entry_type)

        # 当所传en_name不为空时开始创建新账号
        if get_value_type == "contact.user.created_v3":
            jira.jira_user_add()  # 新建用户

        elif get_value_type == "contact.user.deleted_v3":
            try:
                jira.user_disable()
            except Exception as e:
                logging.warning(e)
        else:
            logging.warning('未找到名称，操作失败。')
    except Exception as e:
        logging.warning(f'未找到相关值，操作失败。{e}')


mq.basic_consume(config.get('mq', 'jira_queue'), user_create, True)

# 开始接收消息
mq.start_consuming()
